package com.ruoyi.web.petmall.pethome.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.PetInfoEntity;
import com.ruoyi.web.petmall.entity.PhotoEntity;
import com.ruoyi.web.petmall.entity.vo.TypeVO;
import com.ruoyi.web.petmall.pethome.service.PhotoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * PhotoController类，处理首页相关请求。
 */
@RestController
@RequestMapping(value = "/petHome/home")
@Api(tags = "首页")
public class PhotoController extends BaseController {

    /**
     * PhotoService，用于处理照片相关的业务逻辑。
     */
    @Autowired
    private PhotoService photoService;

    /**
     * 获取轮播图图片。
     *
     * @param photoEntity 查询条件。
     * @return 包含轮播图图片的表格数据。
     */
    @ApiOperation("获取轮播图图片")
    @GetMapping("/photo")
    public TableDataInfo getPhoto(PhotoEntity photoEntity) {
        List<PhotoEntity> list = photoService.getPhoto(photoEntity);
        return getDataTable(list);
    }

    /**
     * 根据条件查询首页宠物信息。
     *
     * @param petInfoEntity 查询条件。
     * @return 包含宠物信息的表格数据。
     */
    @ApiOperation("首页宠物信息条件查询")
    @GetMapping("/getPetInfo")
    public TableDataInfo getPetInfo(PetInfoEntity petInfoEntity) {
        startPage();
        List<PetInfoEntity> list = photoService.getPetInfo(petInfoEntity);
        return getDataTable(list);
    }

    /**
     * 查询首页宠物信息。
     *
     * @return 包含宠物信息的映射。
     */
    @ApiOperation("首页宠物信息查询")
    @GetMapping("/getPetInfoHome")
    public Map<String, List<PetInfoEntity>> getPetInfoHome() {
        startPage();
        Map<String, List<PetInfoEntity>> list = photoService.getPetInfoHome();
        return list;
    }

    /**
     * 查询宠物类型。
     *
     * @return 宠物类型的列表。
     */
    @ApiOperation("查询宠物类型")
    @GetMapping("/getPet")
    public List<TypeVO> getType() {
        startPage();
        List<TypeVO> list = photoService.getType();
        return list;
    }
}
